home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / glibc108.gz / glibc108 / glibc-1.08.1 / Makeconfig < prev    next >
Text File  |  1994-05-04  |  10KB  |  382 lines

  1. # Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
  2. # This file is part of the GNU C Library.
  3.  
  4. # The GNU C Library is free software; you can redistribute it and/or
  5. # modify it under the terms of the GNU Library General Public License as
  6. # published by the Free Software Foundation; either version 2 of the
  7. # License, or (at your option) any later version.
  8.  
  9. # The GNU C Library is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. # Library General Public License for more details.
  13.  
  14. # You should have received a copy of the GNU Library General Public
  15. # License along with the GNU C Library; see the file COPYING.LIB.  If
  16. # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  17. # Cambridge, MA 02139, USA.
  18.  
  19. #
  20. #    Makefile configuration options for the GNU C library.
  21. #
  22. ifneq (,)
  23. This makefile requires GNU Make.
  24. endif
  25.  
  26. ifneq "$(origin +included-Makeconfig)" "file"
  27.  
  28. +included-Makeconfig := yes
  29.  
  30. ifdef subdir
  31. .. := ../
  32. endif
  33.  
  34. # If config.make exists, the source directory was configured,
  35. # so don't try to be clever and find another directory to build in.
  36. ifneq (,$(wildcard $(..)config.make))
  37. ARCH =
  38. machine =
  39. else    # Not configured.
  40. ifndef ARCH
  41. ifdef machine
  42. ARCH = $(machine)
  43. endif # machine
  44. endif # ARCH
  45. endif # config.make
  46.  
  47. # Directory for object files and libc.a.  If this is not defined, the
  48. # object files live in the subdirectories where their sources live, and
  49. # libc.a lives in the parent directory (this probably doesn't work any
  50. # more).
  51. ifdef ARCH
  52. ifeq ($(filter /%,$(ARCH)),)
  53. objdir := $(..)$(ARCH)
  54. else
  55. objdir = $(ARCH)
  56. endif
  57. endif
  58.  
  59. # $(common-objdir) is the place to put objects and 
  60. # such that are not specific to a single subdir.
  61. ifdef objdir
  62. objpfx = $(objdir)/
  63. common-objpfx = $(objpfx)
  64. common-objdir = $(objdir)
  65. else
  66. objpfx :=
  67. ifdef ..
  68. common-objpfx = $(..)
  69. common-objdir = ..
  70. else
  71. # This is a kludge.  make wizards might grok.
  72. common-objpfx = sysdeps/../
  73. common-objdir = .
  74. endif
  75. endif
  76.  
  77. libc.a = $(common-objpfx)libc.a
  78.  
  79.  
  80. # Get the values defined by options to `configure'.
  81. include $(common-objpfx)config.make
  82.  
  83. # Force the user to configure before making.
  84. $(common-objpfx)config.make:
  85.     @echo The GNU C library has not been configured. >&2
  86.     @echo Run \`configure\' to configure it before building. >&2
  87.     @exit 1
  88.  
  89. # Get the user's configuration parameters.
  90. ifneq ($(wildcard $(..)configparms),)
  91. include $(..)configparms
  92. endif
  93. ifneq ($(objpfx),)
  94. ifneq ($(wildcard $(objpfx)configparms),)
  95. include $(objpfx)configparms
  96. endif
  97. endif
  98.  
  99. sysdep_dir := $(..)sysdeps
  100. export sysdep_dir := $(sysdep_dir)
  101.  
  102. ####
  103. ####    These are the configuration variables.  You can define values for
  104. ####    the variables below in the file `configparms'.
  105. ####    Do NOT edit this file.
  106. ####
  107.  
  108.  
  109. # Common prefix for machine-independent installation directories.
  110. ifndef prefix
  111. prefix = /usr/local
  112. endif
  113.  
  114. # Common prefix for machine-dependent installation directories.
  115. ifndef exec_prefix
  116. exec_prefix = $(prefix)
  117. endif
  118.  
  119. # Where to install the library and object files.
  120. ifndef libdir
  121. libdir = $(exec_prefix)/lib
  122. endif
  123.  
  124. # Prefix to put on files installed in $(libdir).  For libraries `libNAME.a',
  125. # the prefix is spliced between `lib' and the name, so the linker switch
  126. # `-l$(libprefix)NAME' finds the library; for other files the prefix is
  127. # just prepended to the whole file name.
  128. ifndef libprefix
  129. libprefix =
  130. endif
  131.  
  132. # Where to install the header files.
  133. ifndef includedir
  134. includedir = $(exec_prefix)/include
  135. endif
  136.  
  137. # Define if the library should install its own <stddef.h>.
  138. # Do this unless you are using version 2.2 or later of GCC.
  139. ifndef stddef.h
  140. stddef.h = stddef.h
  141. endif
  142.  
  143. # Where to install machine-independent data files.
  144. # These are the timezone database, and eventually the locale database.
  145. ifndef datadir
  146. datadir = $(prefix)/lib
  147. endif
  148.  
  149. # Where to install the timezone data files (which are machine-independent).
  150. ifndef zonedir
  151. zonedir = $(datadir)/zoneinfo
  152. endif
  153.  
  154. # Where to install programs.
  155. ifndef bindir
  156. bindir = $(exec_prefix)/bin
  157. endif
  158.  
  159. # Where to install the Info files.
  160. ifndef infodir
  161. infodir = $(prefix)/info
  162. endif
  163.  
  164. # Where to install default configuration files.  These include the local
  165. # timezone specification and network data base files.
  166. ifndef etcdir
  167. etcdir = $(prefix)/etc
  168. endif
  169.  
  170. # What timezone should be the installed default (e.g., US/Eastern).
  171. # Run `make -C time echo-zonenames' to see a list of available zone names.
  172. # The local timezone can be changed with `zic -l TIMEZONE' at any time.
  173. ifndef localtime
  174. localtime = Factory
  175. endif
  176.  
  177. # Where to install the "localtime" timezone file; this is the file whose
  178. # contents $(localtime) specifies.  If this is a relative pathname, it is
  179. # relative to $(zonedir).  It is a good idea to put this somewhere
  180. # other than there, so the zoneinfo directory contains only universal data,
  181. # localizing the configuration data elsewhere.
  182. ifndef localtime-file
  183. localtime-file = $(etcdir)/localtime
  184. endif
  185.  
  186. # What timezone's DST rules should be used when a POSIX-style TZ
  187. # environment variable doesn't specify any rules.  For 1003.1 compliance
  188. # this timezone must use rules that are as U.S. federal law defines DST.
  189. # Run `make -C time echo-zonenames' to see a list of available zone names.
  190. # This setting can be changed with `zic -p TIMEZONE' at any time.
  191. # If you want POSIX.1 compatibility, use `America/New_York'.
  192. ifndef posixrules
  193. posixrules = America/New_York
  194. endif
  195.  
  196. # Where to install the "posixrules" timezone file; this is file
  197. # whose contents $(posixrules) specifies.  If this is a relative
  198. # pathname, it is relative to $(zonedir).
  199. ifndef posixrules-file
  200. posixrules-file = posixrules
  201. endif
  202.  
  203.  
  204. # Directory where your system's native header files live.
  205. # This is used on Unix systems to generate some GNU libc header files.
  206. ifndef sysincludedir
  207. sysincludedir = /usr/include
  208. endif
  209.  
  210.  
  211. # Commands to install files.
  212. ifndef INSTALL_DATA
  213. INSTALL_DATA = $(INSTALL) -m 644
  214. endif
  215. ifndef INSTALL_PROGRAM
  216. INSTALL_PROGRAM = $(INSTALL)
  217. endif
  218. ifndef INSTALL
  219. INSTALL = install
  220. endif
  221.  
  222.  
  223. # The name of the C compiler.
  224. # If you've got GCC, and it works, use it.
  225. ifeq ($(origin CC),default)
  226. CC := gcc
  227. endif
  228.  
  229. # The name of the C compiler to use for compilations of programs to run on
  230. # the host that is building the library.  If you set CC to a
  231. # cross-compiler, you must set this to the normal compiler.
  232. ifndef HOST_CC
  233. HOST_CC = $(CC)
  234. endif
  235.  
  236. # Default flags to pass the C compiler.
  237. ifndef default_cflags
  238. default_cflags := -g
  239. endif
  240.  
  241. # Flags to pass the C compiler when assembling preprocessed assembly code
  242. # (`.S' files).  On some systems the assembler doesn't understand the `#' line
  243. # directives the preprocessor produces.  If you have troubling compiling
  244. # assembly code, try using -P here to suppress these directives.
  245. ifndef asm-CPPFLAGS
  246. asm-CPPFLAGS =
  247. endif
  248.  
  249. # Command for linking programs with the C library.
  250. ifndef +link
  251. +link = $(CC) -nostdlib $(LDFLAGS) -o $@ \
  252.     $(common-objpfx)start.o $(^:lib=$(libc.a)) $(gnulib) $(libc.a)
  253. endif
  254. ifndef gnulib
  255. gnulib := -lgcc
  256. endif
  257.  
  258. ifndef LD
  259. LD := ld -X
  260. endif
  261.  
  262. ifndef    RANLIB
  263. RANLIB = ranlib
  264. endif
  265.  
  266. # Define non-empty if the C compiler understands -v (print version).
  267. +cc_version = $(filter gcc,$(notdir $(firstword $(CC)))) # if using gcc
  268.  
  269. # Extra flags to pass to GCC.
  270. +gccwarn := -Wall -Wwrite-strings -Wno-parentheses
  271. +gccopt := -fstrength-reduce
  272.  
  273. # This is the program that generates makefile
  274. # dependencies from C source files.
  275. ifndef +mkdep
  276. +mkdep = $(CC) -M
  277. endif
  278.  
  279. # The program that makes Emacs-style TAGS files.
  280. ETAGS    := etags -T
  281.  
  282. # The `m4' macro processor; this is used by sysdeps/sparc/Makefile (and
  283. # perhaps others) to preprocess assembly code in some cases.
  284. M4 = m4
  285.  
  286. ####
  287. #### End of configuration variables.
  288. ####
  289.  
  290. # This tells some versions of GNU make before 3.63 not to export all variables.
  291. .NOEXPORT:
  292.  
  293. # We want to echo the commands we're running without
  294. # umpteem zillion filenames along with it (we use `...' instead)
  295. # but we don't want this echoing done when the user has said
  296. # he doesn't want to see commands echoed by using -s.
  297. ifneq    "$(findstring s,$(MAKEFLAGS))" ""    # if -s
  298. +cmdecho    := echo >/dev/null
  299. else                        # not -s
  300. +cmdecho    := echo
  301. endif                           # -s
  302.  
  303. # These are preprocessor macros we want to predefine.  configure will
  304. # define HAVE_GNU_LD for you if you use GNU ld (which you should do if
  305. # possible).  If you do this, you may need the GNU assembler as well.  If
  306. # you don't do this, your library won't work as well (and won't be strictly
  307. # compliant with the ANSI C and POSIX.1 standards).
  308. +defines = $(config-defines) $(defines)
  309.  
  310. # These are the flags given to the compiler to tell
  311. # it what sort of optimization and/or debugging output to do.
  312. ifndef    +cflags
  313. # If `CFLAGS' was defined, use that.
  314. ifdef        CFLAGS
  315. +cflags    := $(filter-out -I%,$(CFLAGS))
  316. endif        # CFLAGS
  317. endif    # +cflags
  318.  
  319. # If none of the above worked, default to "-g".
  320. ifeq    "$(strip $(+cflags))" ""
  321. +cflags    := $(default_cflags)
  322. endif    # $(+cflags) == ""
  323.  
  324. # If using gcc, add flags that only it will grok.
  325. ifneq    "$(findstring gcc,$(CC))" ""
  326. +cflags := $(+cflags) $(+gccwarn)
  327. ifneq    "$(filter -O,$(+cflags))" ""
  328. +cflags := $(+cflags) $(+gccopt)
  329. +gcc-nowarn := -w
  330. endif
  331. else
  332. +gcc-nowarn :=
  333. endif    # gcc
  334.  
  335. # Don't duplicate options if we inherited variables from the parent.
  336. +cflags    := $(sort $(+cflags))
  337.  
  338.  
  339. ifneq    "$(findstring v,$(MAKEFLAGS))" ""    # if -v
  340. ifneq    "$(strip $(+cc_version))" ""
  341. # If Make is telling us version info, tell the compiler to do so as well.
  342. CC    := $(CC) -v
  343. endif    # +cc_version
  344. endif                        # -v
  345.  
  346. # These are flags given to the C compiler to tell it to look for include
  347. # files (including ones given in angle brackets) in the current directory
  348. # and in the parent library source directory.
  349. # `+sysdep-includes' will be defined by Makerules.
  350. ifneq "$(..)" ""
  351. +includes    = -I. -I$(patsubst %/,%,$(..)) $(includes) $(+sysdep-includes)
  352. else
  353. +includes    = -I. $(includes) $(+sysdep-includes)
  354. endif
  355.  
  356.  
  357. # These are the variables that the implicit compilation rules use.
  358. CPPFLAGS = $(+includes) $(+defines) -D_LIBC
  359. override CFLAGS    = $(+cflags)
  360.  
  361.  
  362. # This is the macro that the implicit linking rules use.
  363. ifneq "$(filter -g,$(+cflags))" "" # -g is in $(+cflags)
  364. LDFLAGS    := -g
  365. endif
  366.  
  367.  
  368. ifneq "$(filter -DHAVE_GNU_LD,$(CPPFLAGS))" ""
  369. +gnu-stabs := yes
  370. endif
  371.  
  372. ifneq "$(filter -DHAVE_GNU_AS,$(CPPFLAGS))" ""
  373. gnu-as := yes
  374. endif
  375.  
  376. ifneq ($(HOST_CC),$(CC))
  377. cross-compiling = yes
  378. endif
  379.  
  380.  
  381. endif # Makeconfig not yet included
  382.